# 用于启动和管理Celery任务的入口程序脚本

import os

import django
from celery import Celery

# 设置环境变量, 默认是开发环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dingxiang.settings.dev')

# 初始化Django框架
# 在启动Celery任务之前，必须调用django.setup()来加载Django项目的设置和应用程序。
# 这是因为在Celery任务中可能会使用Django的模型、视图等功能，而这些功能依赖于Django项目的完整初始化。
django.setup()

# 创建Celery对象
app = Celery('dingxiang')

# 从配置文件中加载配置，命名空间为dingxiang，表示当前应用celery
# Celery从mycelery.settings模块中加载配置，其中namespace='dingxiang'参数用于指定配置的前缀，以便在配置文件中区分不同应用的配置。
app.config_from_object('mycelery.settings', namespace='dingxiang')

# 加载任务
app.autodiscover_tasks(['mycelery.sms'])


